package com.kintreda.ieco_server.util.image;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

import com.kintreda.ieco_server.util.Parameters;

public class QRCodeUtil {


	/****************************************************
	 * 生成二维码
	 * 返回http请求访问的URL字符串
	 * @return
	 */
//	public static String encoderQRCode(String content, String fileSavePath,String fileName) {
//
//		try {
//
//			Qrcode qrcodeHandler = new Qrcode();
//			// 设置二维码排错率，可选L(7%)、M(15%)、Q(25%)、H(30%)，排错率越高可存储的信息越少，但对二维码清晰度的要求越小
//			qrcodeHandler.setQrcodeErrorCorrect('H');
//			qrcodeHandler.setQrcodeEncodeMode('B');
//			qrcodeHandler.setQrcodeVersion(15);
//			byte[] contentBytes = content.getBytes("utf-8");
//			BufferedImage bufImg = new BufferedImage(238, 238,BufferedImage.TYPE_INT_RGB);
//			Graphics2D gs = bufImg.createGraphics();
//			gs.setBackground(Color.WHITE);
//			gs.clearRect(0, 0, 238, 238);
//			// 设定图像颜色> BLACK
//			gs.setColor(Color.BLACK);
//			// 设置偏移量 不设置可能导致解析出错
//			int pixoff = 2;
//			// 输出内容> 二维码
//			if (contentBytes.length > 0 && contentBytes.length < 800) {
//				boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);
//				for (int i = 0; i < codeOut.length; i++) {
//					for (int j = 0; j < codeOut.length; j++) {
//						if (codeOut[j][i]) {
//							gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);
//						}
//					}
//				}
//			}
//
//			String basePath = Parameters.uploadBasePath;
//
//			Image logo = ImageIO.read(new File(basePath + "/qrlogo/logo.jpg"));
//			int widthLogo = logo.getWidth(null) > bufImg.getWidth() * 3 / 10 ? (bufImg.getWidth() * 3 / 10) : logo.getWidth(null);
//			int heightLogo = logo.getHeight(null) > bufImg.getHeight() * 3 / 10 ? (bufImg.getHeight() * 3 / 10) : logo.getWidth(null);
//
//            // 设置logo图片的位置
//            int x = (bufImg.getWidth() - widthLogo) / 2;
//            int y = (bufImg.getHeight() - heightLogo) / 2;
//
//            gs.drawImage(logo,x,y,widthLogo,heightLogo,null);
//
//			gs.dispose();
//			bufImg.flush();
//
//			File targetFile = new File(basePath + fileSavePath);
//			if (!targetFile.exists()) {
//				targetFile.mkdirs();
//			}
//
//			File imgFile = new File(basePath + fileSavePath + fileName);
//
//			// 生成二维码QRCode图片
//			ImageIO.write(bufImg, "png", imgFile);
//
//			return Parameters.downloadBasePath + fileSavePath + fileName;
//
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//
//		return "";
//	}
	
	
//	/****************************************************
//	 * 生成二维码
//	 * 返回Image图片信息
//	 * @param encoderQRCode
//	 * @return
//	 */
//	public static BufferedImage encoderQRCodeImage(String content, String fileSavePath,String fileName) {
//
//		try {
//
//			Qrcode qrcodeHandler = new Qrcode();
//			// 设置二维码排错率，可选L(7%)、M(15%)、Q(25%)、H(30%)，排错率越高可存储的信息越少，但对二维码清晰度的要求越小
//			qrcodeHandler.setQrcodeErrorCorrect('H');
//			qrcodeHandler.setQrcodeEncodeMode('B');
//			qrcodeHandler.setQrcodeVersion(15);
//			byte[] contentBytes = content.getBytes("utf-8");
//			BufferedImage bufImg = new BufferedImage(238, 238,BufferedImage.TYPE_INT_RGB);
//			Graphics2D gs = bufImg.createGraphics();
//			gs.setBackground(Color.WHITE);
//			gs.clearRect(0, 0, 238, 238);
//			// 设定图像颜色> BLACK
//			gs.setColor(Color.BLACK);
//			// 设置偏移量 不设置可能导致解析出错
//			int pixoff = 2;
//			// 输出内容> 二维码
//			if (contentBytes.length > 0 && contentBytes.length < 800) {
//				boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);
//				for (int i = 0; i < codeOut.length; i++) {
//					for (int j = 0; j < codeOut.length; j++) {
//						if (codeOut[j][i]) {
//							gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);
//						}
//					}
//				}
//			}
//
//			String basePath = Parameters.uploadBasePath;
//
//			Image logo = ImageIO.read(new File(basePath + "/qrlogo/logo.jpg"));
//			int widthLogo = logo.getWidth(null) > bufImg.getWidth() * 3 / 10 ? (bufImg.getWidth() * 3 / 10) : logo.getWidth(null);
//			int heightLogo = logo.getHeight(null) > bufImg.getHeight() * 3 / 10 ? (bufImg.getHeight() * 3 / 10) : logo.getWidth(null);
//
//            // 设置logo图片的位置
//            int x = (bufImg.getWidth() - widthLogo) / 2;
//            int y = (bufImg.getHeight() - heightLogo) / 2;
//
//            gs.drawImage(logo,x,y,widthLogo,heightLogo,null);
//
//			gs.dispose();
//			bufImg.flush();
//
//			File targetFile = new File(basePath + fileSavePath);
//			if (!targetFile.exists()) {
//				targetFile.mkdirs();
//			}
//
//			File imgFile = new File(basePath + fileSavePath + fileName);
//
//			// 生成二维码QRCode图片
//			ImageIO.write(bufImg, "png", imgFile);
//
//			return ImageIO.read(new File(basePath + fileSavePath + fileName));
//
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//
//		return  null;
//	}
}
